import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class MagicMatrix {
    public static void main(String[] args) {
        System.out.println("用Java实现一下！！！");
    }
}
//奇数魔方阵的排列规律如下:
//
//(1) 将1放在第一行中间一列；
//
//(2) 从2开始直到 n×n 止各数依次按下列规则存放；每一个数存放的行比前一个数的行数减1，列数加1（例如上面的三阶魔方阵，5在4的上一行后一列）;
//
//(3) 如果上一个数的行数为1，则下一个数的行数为 n(指最下一行)；（例如1在第一行，则2应放在最下一行，列数同样加1）；
//
//(4) 当上一个数的列数为 n 时，下一个数的列数应为1，行数减去1。（例如2在第3行最后一列, 则3应放在第二行第一列）；
//
//(5) 如果按上面规则确定的位置上已有数，或上一个数是第一行第n列时，则把下一个数放在上一个数的下面。（例如按上面的规定，4应该放在第1行第2列，但该位置已经被占据，所以4就放在3的下面）；



//#include <stdio.h>
//        #include <assert.h>
//        #include <stdlib.h>
////奇数魔方阵
//        void Magic1()
//        {
//        #define ROW 5
//        #define COL ROW
//        assert(ROW % 2 != 0); //看行数是否为奇数
//
//        int arr[ROW][COL] = { 0 }; //定义数值全为零的二位数组
//
//        int currow = 0;  //临时变量第一行
//        int curcol = COL / 2;  //临时变量中间列
//        arr[currow][curcol] = 1;  //第一条规律，第一行中间位置为1
//        for (int i = 2; i <= ROW * COL; i++)  //第二条规律，2—n*n的所有数字按照给输得规律放位置
//        {
//        if (arr[(currow - 1 + ROW) % ROW][(curcol + 1) % COL] == 0) //判断要放值的格子里是否为零，若是零就可以直接放
//        {
//        currow = (currow - 1 + ROW) % ROW;//每次都是放数字位置的上一行下一列，但是因这里会出现越界问题，所以我们对行和列都做了处理，保证不会越界
//        curcol = (curcol + 1) % COL;
//        }
//        else
//        {
//        currow = (currow + 1) % ROW; //如果要数字的位置上已经有了数字，就放在有数字格子的下一行位置
//        }
//        arr[currow][curcol] = i; //放值
//        }
//
//        for (int i = 0; i < ROW; i++) //打印数组
//        {
//        for (int j = 0; j < COL; j++)
//        {
//        printf("%-3d", arr[i][j]);
//        }
//        printf("\n");
//        }
//        #undef ROW  //因为前面有宏定义这里必须取消
//        #undef COL
//        }
//        int main()
//        {
//        Magic1(); //在主函中测试
//        return 0;
//        }